package cn.wolfcode.trip.base.domain;

import com.alibaba.fastjson.JSON;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.HashMap;
import java.util.Map;

@Getter
@Setter
@ToString
public class Region extends BaseDomain {
    public static final Integer STATE_DISABLED = -1;   // 禁用
    public static final Integer STATE_DEFAULT = 0;     // 默认的
    public static final Integer STATE_HOT = 1;     // 热门的
    // 地区名
    private String name;
    // 上一级地区
    private Region parent;
    // 状态
    private Integer state = STATE_DEFAULT;

    // 转换为指定主键的Map
    public Map<String, Object> toTreeMap() {
        Map<String, Object> map = new HashMap<>();
        map.put("id", id);
        map.put("text", name);
        map.put("lazyLoad", true);
        if (state == Region.STATE_HOT) {
            map.put("tags", new String[] {"推荐"});
        }
        return map;
    }

    // 获取当前地区及其父地区的id和名字
    public String getJson() {
        Map<String, Object> map = new HashMap<>();
        map.put("id", id);
        map.put("name", name);
        map.put("state",state);
        // 可能没有上一级地区
        if (parent != null) {
            map.put("parentId", parent.id);
            map.put("parentName", parent.name);
        }
        return JSON.toJSONString(map);
    }
}